package fr.auzaiphe.admin.model;

import java.util.ArrayList;

/**
 * Classe temporaire pour le sc?nario.
 * En attendant que Hugo commit la sienne.
 * Sinon ?a va exploser dans le git!
 * @author Jojo
 * Classe d'edition du scenario.
 */
public class Scenario extends Jeu
{
	/**
	 * Constructeur principal
	 * @param pModel Model envoyant les paquets lors de déclenchement d'evenements (pointé par les chronos)
	 */
	public Scenario(AdminModel pModel)
	{
		super(pModel);
	}

	/**
	 * Parcours la liste des clients � la recherche
	 * d'un qui match le userName et le password
	 * Si on le trouve, on r�cup�re la liste des indices qu'il peut
	 * voir en vu d'un affichage
	 * @param pUserName nom d'utilisateur envoy� par le client
	 * @param pPassword password envoy� par le client
	 */
	public ArrayList<Indice> authentifierClient(String pUserName, String pPassword)
	{
		boolean notMatch = true;
		int i = 0;

		while ( notMatch && i < this.listeJoueurs.size() )
		{
			if ( this.listeJoueurs.get(i).match( pUserName, pPassword) )
			{
				notMatch = false;
				return new ArrayList<Indice>();
				//return de la Recherche d'indice li� au joueur!
			}
			i++;
		}

		return null;
	}

	public ArrayList<Joueur> StringToJoueur(ArrayList<String> pJoueursVisibles)
	{
		ArrayList<Joueur> returnedJoueurs = new ArrayList<Joueur>();

		for( int i = 0; i < pJoueursVisibles.size(); i++ )
		{
			String[] nomPrenom = pJoueursVisibles.get(i).split(" ");

			for( int j = 0; j < this.listeJoueurs.size(); j++ )
			{
				if ( this.listeJoueurs.get(j).matchName( nomPrenom[0], nomPrenom[1] )
					 || this.listeJoueurs.get(j).matchName( nomPrenom[1], nomPrenom[0] ) )
				{
					returnedJoueurs.add( this.listeJoueurs.get(j) );
				}
			}
		}

		return returnedJoueurs;
	}

	public Contenu toContenu(String pPath, String pContenu)
	{
		Contenu cont = new Contenu(pPath, pContenu);
		return cont;
	}

	/**
	 * Lance le chrono et la partie
	 */
	public void lancerPartie()
	{
		this.chrono.start();
	}

	/**
	 * Stop la partie
	 */
	public void stopperPartie()
	{
		this.chrono.interrupt();
	}
}
